Batch Cheat-Sheet

Start-Snippets

"Diese Batch immer als Administrator ausführen"

Verhindert das leidige Rechtsklick-als Administrator starten - da da da ...
Hab ich irgendwo im Internet gefunden - vergessen wo ;-)
klappt aber super - UAC fragt direkt nach Admin

@echo off

REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"="
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
::--------------------------------------

REM HIER DANN DEIN CODE

Variablen

Datum

Immer das Gleiche - Du willst irgendwas nach Datum speichern oder umbenennen. %Date sortiert nicht gut, Zeiten haben Doppelpunkte und String-Operationen in Bat sind schwer zu merken.

set year=%date:~6,4%
set month=%date:~3,2%
set day=%date:~0,2%
set stamp=%date:~6,4%-%date:~3,2%-%date:~0,2%
echo %date:~6,4%-%date:~3,2%-%date:~0,2%

ergibt 2026-08-30

Weiteres Beispiel

echo %date:~6,4%-%date:~3,2%-%date:~0,2% %time:~0,5%

Bat-Ausführungs-Ordner

Problem bei UNC - Die batch startet irgendwo im Windows\System32 Nirvana.
Wenn man dann auch noch mit relativen Pfaden kopiert, löscht, verschiebt - Gute Nacht.
Besser mit einer Variable des Batch Speicherpfades arbeitzen. Geht dann auch im Netz

%~dp0

Da ist der Backslash schon drin.

x